// HMI系统类型定义

export interface VehicleStatus {
  speed: number;
  speedLimit: number;
  gear: 'P' | 'R' | 'N' | 'D';
  battery: number;
  temperature: number;
  autonomousMode: boolean;
  emergencyStop: boolean;
  cruiseSpeed?: number;
}

export interface NavigationInfo {
  destination: string;
  distance: number; // km
  eta: number; // minutes
  currentStreet: string;
  nextTurn: string;
  turnDistance: number; // meters
}

export interface ModuleStatus {
  camera: 'online' | 'offline' | 'warning';
  lidar: 'online' | 'offline' | 'warning';
  radar: 'online' | 'offline' | 'warning';
  gps: 'online' | 'offline' | 'warning';
  imu: 'online' | 'offline' | 'warning';
  can: 'online' | 'offline' | 'warning';
  perception: 'online' | 'offline' | 'warning';
  planning: 'online' | 'offline' | 'warning';
  control: 'online' | 'offline' | 'warning';
}

export interface SystemMessage {
  id: string;
  type: 'info' | 'warning' | 'error' | 'success';
  title: string;
  message: string;
  timestamp: Date;
  acknowledged: boolean;
}

export interface UserRole {
  type: 'passenger' | 'safety_officer';
  name: string;
  permissions: string[];
}

export interface DetectedObject {
  id: string;
  type: 'pedestrian' | 'vehicle' | 'bicycle' | 'animal' | 'unknown';
  position: { x: number; y: number; z: number };
  confidence: number;
  distance: number;
  velocity: number;
}

export interface ControlSettings {
  volume: number;
  brightness: number;
  language: 'zh' | 'en';
  theme: 'light' | 'dark' | 'auto';
  fontSize?: 'small' | 'medium' | 'large' | 'xlarge';
}

export interface RoutePoint {
  id: string;
  name: string;
  latitude: number;
  longitude: number;
  type: 'pickup' | 'dropoff' | 'waypoint';
  estimatedTime: Date;
}